Epic Workflow System API - Implementation Template

(0 reviews)

Setup guide

Please review the prerequisite instructions to create an app in Epic.

Importing templates into Anypoint Studio

  1. In Studio, click the Exchange X icon in the upper left of the taskbar.
  2. Log in with your Anypoint Platform credentials.
  3. Search for the template.
  4. Click Open.

Running templates in Anypoint Studio

After you import your template into Studio, follow these configuration steps to run it:

EPIC Configuration

After obtaining the necessary client and certificate privatekey password information, configure it in the properties file located in the config/properties folder.

  • mule.env - sets the environment where the application is to be deployed. For a studio deployment, the recommended mule.env value is local
  • mule.key - sets the encryption password to be used for encrypting secure properties. Update as needed
  • api.baseurl - sets the base url of the api. Replace/override as needed when deploying to any environment. Default value is https://localhost:8082/api, when mule.env is local
  • epic.tokenurl - sets the Epic token url. It should be configured in config-<mule.env>.yaml file
  • epic.baseurlSTU3 - sets the Epic STU3 request url. It should be configured in config-<mule.env>.yaml file
  • epic.baseurlR4 - sets the Epic R4 request url. It should be configured in config-<mule.env>.yaml file
  • epic.appointment.findUrl - sets the Epic Appointment url for finding appointments. It should be configured in config-<mule.env>.yaml
  • epic.appointment.bookUrl - sets the Epic Appointment url for booking appointments. It should be configured in config-<mule.env>.yaml
  • jwt.privateKeyPassword - sets the password to be used for generating signed jwt token. It should be encrypted and configured in config-secured-<mule.env>.yaml file
  • epic.clientId - sets the client id for Epic OAuth request. It should be encrypted and configured in config-secured-<mule.env>.yaml file
  • urlReplacements.patientUrl - sets the replacement for Patient resource. It should be configured in config-<mule.env>.yaml. Default value is https://localhost:8082/api, when mule.env is local
  • urlReplacements.practitionerUrl - sets the replacement for Practitioner resource. It should be configured in config-<mule.env>.yaml. Default value is https://localhost:8082/api, when mule.env is local
  • urlReplacements.locationUrl - sets the replacement for Location resource. It should be configured in config-<mule.env>.yaml. Default value is https://localhost:8082/api, when mule.env is local
  • urlReplacements.serviceRequestUrl - sets the replacement for ServiceRequest resource. It should be configured in config-<mule.env>.yaml. Default value is https://localhost:8082/api, when mule.env is local
  • urlReplacements.scheduleUrl - sets the replacement for Schedule resource. It should be configured in config-<mule.env>.yaml. Default value is https://localhost:8082/api, when mule.env is local
  • urlReplacements.appointmentUrl - sets the replacement for Appointment resource. It should be configured in config-<mule.env>.yaml. Default value is https://localhost:8082/api, when mule.env is local
  • urlReplacements.slotUrl - sets the replacement for Slot resource. It should be configured in config-<mule.env>.yaml. Default value is https://localhost:8082/api, when mule.env is local

Please refer to the attached link on how to secure the configuration properties.

Add Keystore file (Anypoint_Keystore.p12) generated as part of Epic Configuration to src/main/resources folder.

HTTPS Configuration

  • https.host — sets the service host interface. It should be configured in config-<mule.env>.yaml file. (Defaults to 0.0.0.0 for all interfaces).
  • https.port — sets the HTTPS service port number. It should be configured in config-<mule.env>.yaml file. (Default 8082).
  • TLS Configuration - Keystore properties setup:
    • keystore.alias - sets the alias to the keystore. It should be configured in config-<mule.env>.yaml file.
    • keystore.path - sets the path to the key file. Key should be available in /src/main/resources/keystore. It should be configured in config-<mule.env>.yaml file.
    • keystore.keypass — sets keystore keypass to support HTTPS operation. It should be encrypted and configured in config-secured-<mule.env>.yaml file.
    • keystore.password— sets keystore password to support HTTPS operation. It should be encrypted and configured in config-secured-<mule.env>.yaml file.

Please refer to the attached link on how to generate the Keystore.

Run it

  1. Right-click the template project folder.
  2. Hover your mouse over 'Run as'.
  3. Click Mule Application (configure).
  4. Inside the dialog, select Environment and set the variable mule.env to the appropriate value (e.g., dev or local).
  5. Inside the dialog, select Environment and set the variable mule.key to the property encryption key that you used to encrypt your secure properties.
  6. Click Run.

Deployment instructions for CloudHub using provided scripts

Ensure the Maven profile CloudHub-DEV has been properly configured in your settings.xml file. Reference can be found by downloading the Accelerator Common Resources asset. Additional instructions are available in the Getting Started with MuleSoft Accelerators - Build Environment guide.

Update the config-dev.yaml properties appropriately and then use one of the following scripts to deploy the application to CloudHub:

  • packageDeploy.sh or deployOnly.sh (Mac/Linux)
  • packageDeploy.cmd or deployOnly.cmd (Windows)

Testing

  • Use Advanced Rest Client or Postman to send request over HTTPS. The template includes a postman collection in src/test/resources folder. Update the collection variable(s) after successful import.

Reviews

TypeTemplate
OrganizationMuleSoft
Published by
MuleSoft Solutions
Published onOct 12, 2023
Asset overview

Asset versions for 1.0.x

Asset versions
VersionActions
1.0.9
1.0.8
1.0.7
1.0.6
1.0.1
1.0.0